import { fileURLToPath, URL } from 'node:url'
import { defineConfig, loadEnv } from 'vite'
import DefineOptions from 'unplugin-vue-define-options/vite'  // 增加定义宏，可使用defineOptions重写定义组件
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'         // 支持tsx
import AutoImport from 'unplugin-auto-import/vite'  // 自动导入ref, reactive等


// https://vitejs.dev/config/
export default ({ mode }: any) => {
  // 通过loadEnv改造vite配置文件，打印当前的环境变量信息
  console.log(loadEnv(mode, process.cwd()))
  return defineConfig({
    plugins: [
      DefineOptions(),
      vueJsx(),
      vue({
        reactivityTransform: true   // 启用新特性
      }),
      AutoImport({
        imports: ['vue',],
        dts: 'src/auto-import.d.ts'
      })
    ],
    resolve: {
      alias: {
        '@': fileURLToPath(new URL('./src', import.meta.url))   // 路径别名
      }
    }
  })
}
